Menu - Skript
PSPad od verze 4.3.3 podporuje skriptovßnφ (u₧ivatelskΘ rozÜi°ovßnφ programu pomocφ skript∙) pomocφ MS Windows Scripting host (WSH). Znamenß to, ₧e pokud chcete tuto funkci PSPadu pou₧φvat, musφ b²t WSH povoleno v operaΦnφm systΘmu.
WSH nepodporuje pouze VBScript a JavaScript (jsou souΦßstφ WSH), ale je mo₧nΘ doinstalovat podporu pro mnoho dalÜφch skriptovacφch jazyk∙. Ke sta₧enφ jsou nap°. na tΘto internetovΘ strßnce: Windows Scripting Languages
Skripty jsou organizovßny v podadresß°φch adresß°e Script podle jednotliv²ch jazyk∙. Neuklßdejte do techto podadresß°∙ jinΘ soubory ne₧ skripty v odpovφdajφcφm jazyku !!! Jinak bude dochßzet k chyb∞ p°i kompilaci skript∙.
Je mo₧nΘ napsat knihovny funkcφ - skripty mohou pou₧φvat funkce vzßjemn∞.
globßlnφ funkce
addMenuItem caption, submenu, procedure [, klßvesovß zkratka]: string
vytvo°φ polo₧ku v menu Skript. Pokud nechcete vytvß°et podmenu, nechejte odpovφdajφcφ parametr prßzdn². Tato funkce je pou₧itelnß pouze v procedu°e INIT a pracuje pouze ve fßzi inicializace skriptu. VeÜkerΘ dalÜφ volßnφ funkce je ignorovßno. Klßvesovß zkratka je nepovinnß
echo(text: string)
informaΦnφ okno s textem a tlaΦφtkem OK
sleep(ms: integer)
pozastavφ provßd∞nφ skriptu na zadan² poΦet milisekund
pspadVersion(): string
vracφ verzi PSpadu
moduleExists(name: string):boolean
vracφ True, pokud modul existuje
moduleVersion(name: string):string
vracφ verzi modulu, pokud modul neexistuje, vracφ prßzdn² °et∞zec
moduleFileName(name: string):string
vracφ jmΘno modulu, pokud modul neexistuje, vracφ prßzdn² °et∞zec
modulePath():string
vracφ cestu k modulu vΦetn∞ poslednφho lomφtka
closeEditorByTitle(file_name: string): boolean
zav°e editor podle jmΘna souboru
closeEditorByIndex(index: integer): boolean
zav°e editor podle indexu
closeAllEditors
zav°e vÜechny editory
newEditor(): object
vytvo°φ nov² objekt pro ovlßdßnφ editoru
funkce objektu editor
assignEditorByName(file_name: string): boolean
p°i°adφ k objektu okno editoru podle jmΘna souboru
assignEditorByIndex(index: integer): boolean
p°i°adφ k objektu okno editoru podle indexu
assignActiveEditor(): boolean
p°i°adφ k objektu okno aktivnφho editoru
assignLog(): boolean
p°i°adφ k objektu LOG okno
newFile([file_name: string]): boolean
vytvo°φ novΘ okno v PSPadu a p°i°adφ je k objektu
openFile(file_name: string): boolean
otev°e soubor
saveFile(): boolean
ulo₧φ soubor
saveFileAs(file_name: string): boolean
ulo₧φ soubor jako
reloadFile(): boolean
provede znovunaΦtenφ souboru
closeFile(): boolean
zav°e soubor
printFile(print_dialog: boolean)
vytiskne soubor
activate
p°esune vybran² editor do pop°edφ
text(string):string
vrßtφ nebo nahradφ cel² text v editoru
selText(string): string
vrßtφ nebo nahradφ oznaΦen² text v editoru
lineText(string): string
vrßtφ nebo nahradφ text aktivnφho °ßdku
linesCount(): integer
vrßtφ poΦet °ßdk∙ v editoru
appendText(string): boolean
p°idß text na konec editoru
fileName(string): string
vrßtφ/nastavφ jmΘno souboru editoru
command(editor_command: string): boolean
spustφ p°φkaz editoru ()
setCaretPos(x: integer; y: integer): boolean
nastavφ pozici sloupce a °ßdku kurzoru. Hodnota -1 nem∞nφ pozici
caretX(integer): integer
vrßtφ/nastavφ kurzor na dan² sloupec
caretY(integer): integer
vrßtφ/nastavφ kurzor na dan² °ßdek
vb script - p°φklad
' vytvo°φ novΘ okno a zkopφruje cel² text z prvnφho okna
' ulo₧φ novΘ okno do souboru C:\SAMPLE.TXT
const module_name = "sample" 'toto jmΘno musφ b²t unikßtnφ
const module_desc = "Sample script" 'popis modulu
const module_ver = "0.001a" 'verze modulu
sub Main 'hlavni procedura
dim obj1, obj2, s 'definice prom∞nn²ch pspadVersion
msgbox "PSPad version : " & pspadVersion()
msgbox "Module version: " & moduleVersion("sample")
set obj1 = getNewEditor() 'vytvo°φme nov² objekt editoru
set obj2 = getNewEditor() 'vytvo°φme nov² objekt editoru
obj2.assignEditorByIndex(0) 'p°i°adφme okno v PSPadu s indexem 0
obj1.NewFile() 'otev°eme novΘ okno v PSpadu
s = obj2.getText 'naΦteme cel² obsah 1.okna
obj1.settext(s) 'vlo₧φme text do novΘho okna
' postup, jak p°istupovat k jednotliv²m °ßdk∙m
dim item
for each item in obj1
MsgBox item
next
obj1.saveFileAs("C:\sample.txt") 'ulo₧φme do souboru
obj1.closeFile 'zav°eme okno v PSPadu
end sub
sub Demo1
msgbox "You run Demo1 from sample script"
end sub
sub Demo2
msgbox "You run Demo2 from sample script"
end sub
' vytiskne vÜechna otev°enß okna, p°ed prvnφm oknem zobrazφ dialog na nastavenφ tiskßrny
sub PrintAll
set obj = NewEditor()
for i = 0 to editorsCount - 1
obj.assignEditorByIndex(i)
if i = 0 then
obj.printFile(True)
else
obj.printFile(False)
end if
next
end sub
' jmΘno INIT je povinnΘ. tato funkce je volßna automaticky p°i inicializaci skriptu.
' pou₧φvß se hlavn∞ pro vytvß°enφ polo₧ek v menu
sub Init
addMenuItem "Main from Sample", "", "Main"
addMenuItem "Print all files","", "PrintAll", "Shift+Ctrl+P"
addMenuItem "Demo1 from Sample","Sample - submenu", "Demo1"
addMenuItem "Demo2 from Sample","Sample - submenu", "Demo2"
end sub